<?php
/**
 *
 */
class AdminModel extends Model
{
	//protected $tableName = 'admin';	// 表名
	//protected $trueTableName = 'ct_admin';		// 完整表名
	//protected $dbName = 'ct';		// 数据库名
	//protected $fields = array();  // 字段列表

	// 自动验证
	protected $_validate = array(
        array('username','2,30','用户名长度不合法', 0, 'length', 1),
        array('username', '', '用户名已经存在',0,'unique',1),
        array('name','require','姓名不得为空'),
		array('email', 'email', "email格式不正确"),
	);

	// 自动填充
    protected $_auto = array (
        array('password','md5',1,'function'),
        array('created', 'time', 1, 'function'),
        array('updated', 'time', 2, 'function'),
    );

	/**
	 * 模型预初始化
	 *
	 * @return NULL
	 */
    protected function _initialize() {}

    /**
     * 用户资料修改，密码与用户名特殊处理
	 *
	 * @param $userid
     * @param $data
     * @return mixed
     */
	public function edit($userid, $data)
	{
        // 修改密码
		if (!empty($data['password'])) {
			$data['password'] = md5($data['password']);
		} else {
			unset($data['password']);
		}
        // 不允许修改用户名
        if ($data['username']) unset($data['username']);
        $result = $this->where("userid=".$userid)->save($data);
		return $result;
	}

    /**
	 * 格式化输出信息
	 *
     * @param $resultSet
     * @param $options
     * @return bool
     */
    protected function _after_select(&$resultSet, $options)
    {
        if (is_array($resultSet)) {
            foreach ($resultSet as $key => &$d) {
                $this->_output($d);
            }
        }
        return false;
    }

    /**
	 * 格式化输出信息
	 *
     * @param $result
     * @param $options
     */
    protected function _after_find(&$result, $options)
    {
        if ($result) {
            $this->_output($result);
        }
    }

    /**
	 * 处理显示数据
	 *
     * @param $row
     */
    private function _output(&$row)
    {
        $row['state'] = ($row['disabled'] == 0) ? '启用' : '<span class="c_red">禁用</span>';
        $row['sextext'] = $row['sex'] ? ($row['sex'] == MALE ? '男' : '女') : '保密';
    }
}